/*!
\copyright  Copyright (c) 2019-2024 Qualcomm Technologies International, Ltd.
            All Rights Reserved.
            Qualcomm Technologies International, Ltd. Confidential and Proprietary.
\file       
\brief      Header file for Touch Pad, where the driver is provided by sensor SS
*/

#ifndef TOUCHPAD_SENSORSS_H
#define TOUCHPAD_SENSORSS_H

#if defined(HAVE_SENSORSS)

#include <types.h>
#include "domain_message.h"
#include "touch.h"

#define touchConfigPressCancelMs()              (300)
#define touchConfigMaximumHeldTimeSeconds()     (65)
#define touchConfigClickTimeoutlMs()            (400)

typedef enum
{
    TOUCH_INTERNAL_HELD_CANCEL_TIMER=INTERNAL_MESSAGE_BASE,
    TOUCH_INTERNAL_HELD_TIMER,
    TOUCH_INTERNAL_HELD_RELEASE,
    TOUCH_INTERNAL_CLICK_TIMER,
} touch_module_internal_messages;

typedef struct _touchFlags
{
    bool touchFlag:1;
    bool lastEventTouch:1;
    bool suppressSlide:1;
} TouchFlags;

/*! \brief Get the touch sensor task

    For this sensor, touch messages #SENSOR_SS_TOUCH_EVENT from
    the application running on the sensor subsystem should be sent
    to this task.

    \return The task this module uses for processing external
            messages
 */
Task TouchSensorGetTask(void);


#endif /* HAVE_SENSORSS */
#endif /* TOUCHPAD_SENSORSS_H */
